1. PRISMA diagram of this study

knitr::include_graphics(rep("PRISMA.jpg"))

2.Bibliometrics analysis

With "biblioshiny()", it will pop up a website. After getting all the qualified papers, I downloaded the .ciw files of the papers (please remember to compress all the .ciw files to a .zip format to upload). I made the Most Frequent Words plots (Fig. 1a and Fig. 1b) for deciding the potential modifiers.(Documents -> Most Frequent Words)

And then I made the Countries’ scientific production plot (Fig. 2a). (Authors -> Countries -> Countries’ scientific production)

Alt Text Alt Text Alt Text # Information on Data Sources

# Load required installation packages
library(meta)
## Loading required package: metadat
## Loading 'meta' package (version 8.0-1).
## Type 'help(meta)' for a brief overview.
library(metafor)
## Loading required package: Matrix
## Loading required package: numDeriv
## 
## Loading the 'metafor' package (version 4.6-0). For an
## introduction to the package please type: help(metafor)
library(Matrix)
library(metadat)
library(ggplot2)
library(readxl)
library(openxlsx)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(multcomp)
## Loading required package: mvtnorm
## Loading required package: survival
## Loading required package: TH.data
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
## 
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
## 
##     geyser
library(tidyr)
## 
## Attaching package: 'tidyr'
## The following objects are masked from 'package:Matrix':
## 
##     expand, pack, unpack
# Dataset
data <- data.frame(
  Category = c(
    "Experimental", "Observational",
    "Directly from Articles or Tables", "PlotDigitizer Online App", "Raw Data in Papers"
  ),
  Type = c(
    "Research Approach", "Research Approach",
    "Data Sourcing Method", "Data Sourcing Method", "Data Sourcing Method"
  ),
  Articles = c(333, 13, 78, 229, 39),  # Corresponding # of Articles (N)
  Observations = c(3700, 79, 717, 1896, 1166)  # Corresponding # of Observations (K)
)

# Set category order
data$Category <- factor(data$Category, levels = c(
  "Experimental", "Observational",
  "Directly from Articles or Tables", "PlotDigitizer Online App", "Raw Data in Papers"
))

# Figure 2b: Bar chart for the number of articles
p1 <- ggplot(data, aes(x = Category, y = Articles, fill = Type)) +
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(values = c("gray", "skyblue")) +
  scale_y_continuous(limits = c(0, 360)) + 
  labs(
    x = "Category",
    y = "Number of Articles"
  ) +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10), # Adjust x-axis text size
    axis.text.y = element_text(size = 10), # Adjust y-axis text size
    panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
    plot.background = element_blank(),         
    panel.grid.major = element_blank(),        
    panel.grid.minor = element_blank(),
    legend.background = element_blank(),
    legend.key = element_blank(),
    legend.title = element_blank(),
    panel.border = element_rect(color = "gray", fill = NA, size = 1) # Add border
  )

# Figure 2c: Bar chart for the number of observations
p2 <- ggplot(data, aes(x = Category, y = Observations, fill = Type)) +
  geom_bar(stat = "identity", position = "dodge") + 
  scale_fill_manual(values = c("gray", "skyblue")) +
  scale_y_continuous(limits = c(0, 4000)) + 
  labs(
    x = "Category",
    y = "Number of Observations"
  ) +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10), # Adjust x-axis text size
    axis.text.y = element_text(size = 10), # Adjust y-axis text size
    panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
    plot.background = element_blank(),         
    panel.grid.major = element_blank(),        
    panel.grid.minor = element_blank(),
    legend.background = element_blank(),
    legend.key = element_blank(),
    legend.title = element_blank(),
    panel.border = element_rect(color = "gray", fill = NA, size = 1) # Add border
  )

# Display the two charts
print(p1)

print(p2)

3. Multivariate meta-analysis

# Read data
data = read_excel(path = "Table S1 - Data File.xlsx", sheet = "Without microbes")

# Convert Treatment column to numeric
data$Treatment = as.numeric(data$Treatment)

# Insert the response coefficient and id column
id = 1:length(data$Treatment)
data = data.frame(id, data)

3.1 Overall effect

3.1.1 Overall effect for trait mean

ddd.new <- escalc(measure = "ROM", m2i = Control, m1i = Treatment, sd1i = Treatment_SD, sd2i = Control_SD, n1i = Treatment_N, n2i = Control_N, data = data) # refer to Nakagawa et al. (2015)

3.1.2 Overall effect for trait variation

cl = lm(data$Control ~ data$Control_SD)
summary(cl)
## 
## Call:
## lm(formula = data$Control ~ data$Control_SD)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -28731.3    -94.5    -93.5    -78.1  31133.7 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     94.47145   22.01963    4.29 1.83e-05 ***
## data$Control_SD  2.74217    0.02595  105.67  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1344 on 3777 degrees of freedom
## Multiple R-squared:  0.7473, Adjusted R-squared:  0.7472 
## F-statistic: 1.117e+04 on 1 and 3777 DF,  p-value: < 2.2e-16
tl = lm(data$Treatment ~ data$Treatment_SD)
summary(tl) # There is correlation, using lnCVR is that it can reduce the influence of mean on variance when there is a strong correlation between trait mean and variance
## 
## Call:
## lm(formula = data$Treatment ~ data$Treatment_SD)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -23985   -142   -141   -126  49013 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       142.23008   29.49912   4.822 1.48e-06 ***
## data$Treatment_SD   2.22481    0.02606  85.374  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1804 on 3777 degrees of freedom
## Multiple R-squared:  0.6587, Adjusted R-squared:  0.6586 
## F-statistic:  7289 on 1 and 3777 DF,  p-value: < 2.2e-16
rd <- escalc(measure = "CVR", m2i = Control, m1i = Treatment, sd1i = Treatment_SD + 0.01, sd2i = Control_SD + 0.01, n1i = Treatment_N, n2i = Control_N, data = data) # + 0.01 to avoid NAs

3.2 Invasion

3.2.1 Invasion trait mean

rmod.mix0 <- rma.mv(yi ~ 1, V = vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix0
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1116  0.3341    346     no            Study 
## sigma^2.2  0.1801  0.4243   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Model Results:
## 
## estimate      se     zval    pval    ci.lb    ci.ub      
##  -0.1649  0.0214  -7.6927  <.0001  -0.2069  -0.1229  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
rmod.mix <- rma.mv(yi ~ factor(Native_Nonnative) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1122  0.3349    346     no            Study 
## sigma^2.2  0.1786  0.4226   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:4):
## QM(df = 4) = 81.9885, p-val < .0001
## 
## Model Results:
## 
##                            estimate      se     zval    pval    ci.lb    ci.ub 
## factor(Native_Nonnative)1   -0.1575  0.0228  -6.8940  <.0001  -0.2023  -0.1127 
## factor(Native_Nonnative)2   -0.2587  0.0423  -6.1201  <.0001  -0.3415  -0.1758 
## factor(Native_Nonnative)3   -0.2274  0.0640  -3.5557  0.0004  -0.3527  -0.1021 
## factor(Native_Nonnative)4   -0.0749  0.0442  -1.6969  0.0897  -0.1615   0.0116 
##                                
## factor(Native_Nonnative)1  *** 
## factor(Native_Nonnative)2  *** 
## factor(Native_Nonnative)3  *** 
## factor(Native_Nonnative)4    . 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(glht(rmod.mix, linfct=cbind(contrMat(c("factor(Native_Nonnative)1"=1,"factor(Native_Nonnative)2"=1,"factor(Native_Nonnative)3"=1, "factor(Native_Nonnative)4"=1 ), type="Tukey"))), test=adjusted("none")) # To compare the differences in effect sizes between different conditions
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Fit: rma.mv(yi = yi ~ factor(Native_Nonnative) - 1, V = vi, random = list(~1 | 
##     Study/id, ~1 | Pub_Year, ~1 | Ecosystem, ~1 | Study_Test_Type), 
##     data = ddd.new, method = "ML")
## 
## Linear Hypotheses:
##                                                            Estimate Std. Error
## factor(Native_Nonnative)2 - factor(Native_Nonnative)1 == 0 -0.10120    0.04252
## factor(Native_Nonnative)3 - factor(Native_Nonnative)1 == 0 -0.06991    0.06465
## factor(Native_Nonnative)4 - factor(Native_Nonnative)1 == 0  0.08257    0.04422
## factor(Native_Nonnative)3 - factor(Native_Nonnative)2 == 0  0.03128    0.07145
## factor(Native_Nonnative)4 - factor(Native_Nonnative)2 == 0  0.18377    0.03925
## factor(Native_Nonnative)4 - factor(Native_Nonnative)3 == 0  0.15248    0.07341
##                                                            z value Pr(>|z|)    
## factor(Native_Nonnative)2 - factor(Native_Nonnative)1 == 0  -2.380   0.0173 *  
## factor(Native_Nonnative)3 - factor(Native_Nonnative)1 == 0  -1.081   0.2795    
## factor(Native_Nonnative)4 - factor(Native_Nonnative)1 == 0   1.867   0.0619 .  
## factor(Native_Nonnative)3 - factor(Native_Nonnative)2 == 0   0.438   0.6615    
## factor(Native_Nonnative)4 - factor(Native_Nonnative)2 == 0   4.682 2.84e-06 ***
## factor(Native_Nonnative)4 - factor(Native_Nonnative)3 == 0   2.077   0.0378 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.2.2 Invasion trait variation

rmod.mix0.v <- rma.mv(yi ~ 1, V = vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix0.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0630  0.2510    346     no            Study 
## sigma^2.2  0.1835  0.4283   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Heterogeneity:
## Q(df = 3778) = 8365.3009, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.1251  0.0202  6.1947  <.0001  0.0855  0.1646  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
rmod.mix.v <- rma.mv(yi ~ factor(Native_Nonnative) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0624  0.2498    346     no            Study 
## sigma^2.2  0.1834  0.4283   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3775) = 8342.8784, p-val < .0001
## 
## Test of Moderators (coefficients 1:4):
## QM(df = 4) = 41.7585, p-val < .0001
## 
## Model Results:
## 
##                            estimate      se    zval    pval    ci.lb   ci.ub 
## factor(Native_Nonnative)1    0.1250  0.0221  5.6515  <.0001   0.0817  0.1684 
## factor(Native_Nonnative)2    0.1359  0.0465  2.9190  0.0035   0.0446  0.2271 
## factor(Native_Nonnative)3    0.1946  0.0718  2.7083  0.0068   0.0538  0.3354 
## factor(Native_Nonnative)4    0.0624  0.0496  1.2595  0.2079  -0.0347  0.1595 
##                                
## factor(Native_Nonnative)1  *** 
## factor(Native_Nonnative)2   ** 
## factor(Native_Nonnative)3   ** 
## factor(Native_Nonnative)4      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(glht(rmod.mix.v, linfct=cbind(contrMat(c("factor(Native_Nonnative)1"=1,"factor(Native_Nonnative)2"=1,"factor(Native_Nonnative)3"=1, "factor(Native_Nonnative)4"=1 ), type="Tukey"))), test=adjusted("none")) # To compare the differences in effect sizes between different conditions
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Fit: rma.mv(yi = yi ~ factor(Native_Nonnative) - 1, V = vi, random = list(~1 | 
##     Study/id, ~1 | Pub_Year, ~1 | Ecosystem, ~1 | Study_Test_Type), 
##     data = rd, method = "ML")
## 
## Linear Hypotheses:
##                                                            Estimate Std. Error
## factor(Native_Nonnative)2 - factor(Native_Nonnative)1 == 0  0.01086    0.04867
## factor(Native_Nonnative)3 - factor(Native_Nonnative)1 == 0  0.06955    0.07387
## factor(Native_Nonnative)4 - factor(Native_Nonnative)1 == 0 -0.06259    0.05147
## factor(Native_Nonnative)3 - factor(Native_Nonnative)2 == 0  0.05869    0.08298
## factor(Native_Nonnative)4 - factor(Native_Nonnative)2 == 0 -0.07346    0.05337
## factor(Native_Nonnative)4 - factor(Native_Nonnative)3 == 0 -0.13215    0.08545
##                                                            z value Pr(>|z|)
## factor(Native_Nonnative)2 - factor(Native_Nonnative)1 == 0   0.223    0.823
## factor(Native_Nonnative)3 - factor(Native_Nonnative)1 == 0   0.942    0.346
## factor(Native_Nonnative)4 - factor(Native_Nonnative)1 == 0  -1.216    0.224
## factor(Native_Nonnative)3 - factor(Native_Nonnative)2 == 0   0.707    0.479
## factor(Native_Nonnative)4 - factor(Native_Nonnative)2 == 0  -1.376    0.169
## factor(Native_Nonnative)4 - factor(Native_Nonnative)3 == 0  -1.546    0.122
## (Adjusted p values reported -- none method)

3.3 Test for modifiers

3.3.1 Organisms trait

3.3.1.1 Organisms trait mean

# Overall
rmod.mix.org <- rma.mv(yi ~ factor(Organism) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.org
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1115  0.3339    346     no            Study 
## sigma^2.2  0.1800  0.4243   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:2):
## QM(df = 2) = 59.8099, p-val < .0001
## 
## Model Results:
## 
##                    estimate      se     zval    pval    ci.lb    ci.ub      
## factor(Organism)1   -0.1740  0.0245  -7.1029  <.0001  -0.2220  -0.1260  *** 
## factor(Organism)2   -0.1352  0.0442  -3.0593  0.0022  -0.2218  -0.0486   ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.o <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Organism)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.o
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1122  0.3349    346     no            Study 
## sigma^2.2  0.1785  0.4225   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:8):
## QM(df = 8) = 83.7942, p-val < .0001
## 
## Model Results:
## 
##                                                       estimate      se     zval 
## paste(factor(Native_Nonnative), factor(Organism))1 1   -0.1659  0.0263  -6.3155 
## paste(factor(Native_Nonnative), factor(Organism))1 2   -0.1347  0.0467  -2.8855 
## paste(factor(Native_Nonnative), factor(Organism))2 1   -0.2740  0.0444  -6.1690 
## paste(factor(Native_Nonnative), factor(Organism))2 2   -0.0920  0.1557  -0.5905 
## paste(factor(Native_Nonnative), factor(Organism))3 1   -0.2280  0.0667  -3.4180 
## paste(factor(Native_Nonnative), factor(Organism))3 2   -0.2829  0.2348  -1.2047 
## paste(factor(Native_Nonnative), factor(Organism))4 1   -0.0823  0.0461  -1.7839 
## paste(factor(Native_Nonnative), factor(Organism))4 2   -0.0760  0.1762  -0.4314 
##                                                         pval    ci.lb    ci.ub 
## paste(factor(Native_Nonnative), factor(Organism))1 1  <.0001  -0.2174  -0.1144 
## paste(factor(Native_Nonnative), factor(Organism))1 2  0.0039  -0.2262  -0.0432 
## paste(factor(Native_Nonnative), factor(Organism))2 1  <.0001  -0.3610  -0.1869 
## paste(factor(Native_Nonnative), factor(Organism))2 2  0.5549  -0.3972   0.2133 
## paste(factor(Native_Nonnative), factor(Organism))3 1  0.0006  -0.3588  -0.0973 
## paste(factor(Native_Nonnative), factor(Organism))3 2  0.2283  -0.7430   0.1773 
## paste(factor(Native_Nonnative), factor(Organism))4 1  0.0744  -0.1728   0.0081 
## paste(factor(Native_Nonnative), factor(Organism))4 2  0.6662  -0.4214   0.2693 
##                                                           
## paste(factor(Native_Nonnative), factor(Organism))1 1  *** 
## paste(factor(Native_Nonnative), factor(Organism))1 2   ** 
## paste(factor(Native_Nonnative), factor(Organism))2 1  *** 
## paste(factor(Native_Nonnative), factor(Organism))2 2      
## paste(factor(Native_Nonnative), factor(Organism))3 1  *** 
## paste(factor(Native_Nonnative), factor(Organism))3 2      
## paste(factor(Native_Nonnative), factor(Organism))4 1    . 
## paste(factor(Native_Nonnative), factor(Organism))4 2      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.o, linfct = contrMat(coef(rmod.mix.o), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Organism)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = ddd.new, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                   Estimate
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.031195
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.108065
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.073944
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.062129
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.116950
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.083580
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.089887
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.139260
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  0.042750
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.093324
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.148145
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  0.052385
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  0.058692
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  0.182010
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  0.045936
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 -0.008885
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  0.191645
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  0.197952
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0 -0.136073
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0 -0.190894
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  0.009636
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  0.015942
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 -0.054821
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  0.145709
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  0.152016
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0  0.200530
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0  0.206836
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0  0.006307
##                                                                                                                  Std. Error
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.053568
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.044282
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.157926
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.067277
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.236245
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.045879
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.178150
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.064434
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.160816
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.081426
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.238863
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.065643
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.179696
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.161935
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.073991
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.238944
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.040118
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.181713
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.169415
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.276466
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.162420
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.188822
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.244075
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.075987
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.188409
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.239272
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.286949
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0   0.182145
##                                                                                                                  z value
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.582
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -2.440
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.468
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -0.923
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -0.495
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   1.822
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.505
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -2.161
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.266
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -1.146
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -0.620
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.798
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.327
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   1.124
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.621
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  -0.037
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   4.777
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   1.089
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  -0.803
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  -0.690
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.059
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.084
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  -0.225
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   1.918
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.807
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.838
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.721
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0   0.035
##                                                                                                                  Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.5603
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.0147
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.6396
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.3558
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.6206
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.0685
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.6139
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.0307
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.7904
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.2517
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.5351
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.4249
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.7440
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.2610
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.5347
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.9703
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 1.78e-06
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.2760
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.4219
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.4899
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.9527
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.9327
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.8223
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.0552
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.4198
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.4020
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.4710
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0   0.9724
##                                                                                                                     
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 *  
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 .  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 *  
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 .  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.3.1.2 Organisms trait variation

# Overall
rmod.mix.org.v <- rma.mv(yi ~ factor(Organism) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.org.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0630  0.2509    346     no            Study 
## sigma^2.2  0.1835  0.4283   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3777) = 8358.3246, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## QM(df = 2) = 38.5902, p-val < .0001
## 
## Model Results:
## 
##                    estimate      se    zval    pval   ci.lb   ci.ub      
## factor(Organism)1    0.1204  0.0227  5.2979  <.0001  0.0758  0.1649  *** 
## factor(Organism)2    0.1426  0.0440  3.2439  0.0012  0.0564  0.2287   ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.o.v <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Organism)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.o.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0568  0.2383    346     no            Study 
## sigma^2.2  0.1773  0.4210   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3771) = 8117.2785, p-val < .0001
## 
## Test of Moderators (coefficients 1:8):
## QM(df = 8) = 89.4221, p-val < .0001
## 
## Model Results:
## 
##                                                       estimate      se     zval 
## paste(factor(Native_Nonnative), factor(Organism))1 1    0.1254  0.0245   5.1161 
## paste(factor(Native_Nonnative), factor(Organism))1 2    0.1169  0.0450   2.5973 
## paste(factor(Native_Nonnative), factor(Organism))2 1    0.1360  0.0473   2.8747 
## paste(factor(Native_Nonnative), factor(Organism))2 2   -0.0285  0.1813  -0.1575 
## paste(factor(Native_Nonnative), factor(Organism))3 1    0.2149  0.0733   2.9313 
## paste(factor(Native_Nonnative), factor(Organism))3 2   -0.0323  0.2523  -0.1278 
## paste(factor(Native_Nonnative), factor(Organism))4 1    0.0004  0.0501   0.0090 
## paste(factor(Native_Nonnative), factor(Organism))4 2    1.4084  0.2176   6.4717 
##                                                         pval    ci.lb   ci.ub 
## paste(factor(Native_Nonnative), factor(Organism))1 1  <.0001   0.0774  0.1735 
## paste(factor(Native_Nonnative), factor(Organism))1 2  0.0094   0.0287  0.2051 
## paste(factor(Native_Nonnative), factor(Organism))2 1  0.0040   0.0433  0.2287 
## paste(factor(Native_Nonnative), factor(Organism))2 2  0.8749  -0.3838  0.3267 
## paste(factor(Native_Nonnative), factor(Organism))3 1  0.0034   0.0712  0.3586 
## paste(factor(Native_Nonnative), factor(Organism))3 2  0.8983  -0.5268  0.4623 
## paste(factor(Native_Nonnative), factor(Organism))4 1  0.9928  -0.0976  0.0985 
## paste(factor(Native_Nonnative), factor(Organism))4 2  <.0001   0.9818  1.8349 
##                                                           
## paste(factor(Native_Nonnative), factor(Organism))1 1  *** 
## paste(factor(Native_Nonnative), factor(Organism))1 2   ** 
## paste(factor(Native_Nonnative), factor(Organism))2 1   ** 
## paste(factor(Native_Nonnative), factor(Organism))2 2      
## paste(factor(Native_Nonnative), factor(Organism))3 1   ** 
## paste(factor(Native_Nonnative), factor(Organism))3 2      
## paste(factor(Native_Nonnative), factor(Organism))4 1      
## paste(factor(Native_Nonnative), factor(Organism))4 2  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.o.v, linfct = contrMat(coef(rmod.mix.o.v), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Organism)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = rd, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                   Estimate
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.008548
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.010595
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.153957
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  0.089502
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.157669
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 -0.124967
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  1.282952
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  0.019143
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.145409
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  0.098050
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.149121
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 -0.116419
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  1.291500
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 -0.164552
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  0.078907
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 -0.168264
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 -0.135562
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  1.272357
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  0.243459
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0 -0.003712
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  0.028990
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  1.436909
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 -0.247171
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 -0.214469
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  1.193450
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0  0.032702
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0  1.440621
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0  1.407919
##                                                                                                                  Std. Error
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.051241
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.049785
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.182903
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.075703
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.253524
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.052334
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.218995
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.065293
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.186300
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.086025
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.256270
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.067303
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.221459
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.187326
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.084468
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.256733
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.053968
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.222703
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.195520
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.310010
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.188036
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.258003
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.262772
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.086828
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.229638
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.257251
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.332318
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0   0.223300
##                                                                                                                  z value
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -0.167
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.213
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -0.842
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   1.182
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -0.622
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0  -2.388
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   5.858
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.293
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -0.781
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   1.140
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -0.582
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0  -1.730
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   5.832
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  -0.878
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.934
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  -0.655
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0  -2.512
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   5.713
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   1.245
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0  -0.012
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.154
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   5.569
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  -0.941
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0  -2.470
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   5.197
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.127
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   4.335
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0   6.305
##                                                                                                                  Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.8675
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.8315
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.3999
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.2371
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.5340
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0   0.0169
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 4.67e-09
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.7694
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.4351
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.2544
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.5606
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0   0.0837
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 5.48e-09
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.3797
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.3502
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.5122
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0   0.0120
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 1.11e-08
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.2131
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.9904
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0   0.8775
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0 2.56e-08
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.3469
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0   0.0135
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 2.02e-07
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0   0.8988
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0 1.46e-05
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0 2.88e-10
##                                                                                                                     
## paste(factor(Native_Nonnative), factor(Organism))1 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 *  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 1 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))2 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 .  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))1 2 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))2 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 *  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 1 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))3 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))2 2 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))3 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 *  
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 1 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))4 1 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0    
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))3 2 == 0 ***
## paste(factor(Native_Nonnative), factor(Organism))4 2 - paste(factor(Native_Nonnative), factor(Organism))4 1 == 0 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.3.2 Trait type

3.3.2.1 Trait type mean

# Overall
rmod.mix.tr <- rma.mv(yi ~ factor(Trait_type) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.tr
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1095  0.3310    346     no            Study 
## sigma^2.2  0.1778  0.4216   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:3):
## QM(df = 3) = 106.0058, p-val < .0001
## 
## Model Results:
## 
##                      estimate      se     zval    pval    ci.lb    ci.ub      
## factor(Trait_type)C   -0.0030  0.0328  -0.0921  0.9266  -0.0673   0.0613      
## factor(Trait_type)L   -0.1673  0.0317  -5.2770  <.0001  -0.2294  -0.1052  *** 
## factor(Trait_type)M   -0.1856  0.0228  -8.1280  <.0001  -0.2304  -0.1409  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.t <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Trait_type)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.t
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1098  0.3314    346     no            Study 
## sigma^2.2  0.1758  0.4193   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:12):
## QM(df = 12) = 138.8538, p-val < .0001
## 
## Model Results:
## 
##                                                         estimate      se 
## paste(factor(Native_Nonnative), factor(Trait_type))1 C    0.0262  0.0357 
## paste(factor(Native_Nonnative), factor(Trait_type))1 L   -0.1621  0.0345 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M   -0.1794  0.0244 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C   -0.2128  0.0842 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L   -0.1217  0.1085 
## paste(factor(Native_Nonnative), factor(Trait_type))2 M   -0.2826  0.0443 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C   -0.2104  0.2645 
## paste(factor(Native_Nonnative), factor(Trait_type))3 L   -0.4391  0.1279 
## paste(factor(Native_Nonnative), factor(Trait_type))3 M   -0.1955  0.0676 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C   -0.0188  0.0824 
## paste(factor(Native_Nonnative), factor(Trait_type))4 L   -0.0013  0.1058 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M   -0.0983  0.0468 
##                                                            zval    pval 
## paste(factor(Native_Nonnative), factor(Trait_type))1 C   0.7340  0.4630 
## paste(factor(Native_Nonnative), factor(Trait_type))1 L  -4.7009  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M  -7.3465  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C  -2.5278  0.0115 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L  -1.1216  0.2620 
## paste(factor(Native_Nonnative), factor(Trait_type))2 M  -6.3756  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C  -0.7953  0.4265 
## paste(factor(Native_Nonnative), factor(Trait_type))3 L  -3.4322  0.0006 
## paste(factor(Native_Nonnative), factor(Trait_type))3 M  -2.8940  0.0038 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C  -0.2278  0.8198 
## paste(factor(Native_Nonnative), factor(Trait_type))4 L  -0.0128  0.9898 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M  -2.1020  0.0356 
##                                                           ci.lb    ci.ub      
## paste(factor(Native_Nonnative), factor(Trait_type))1 C  -0.0438   0.0963      
## paste(factor(Native_Nonnative), factor(Trait_type))1 L  -0.2297  -0.0945  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M  -0.2273  -0.1316  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C  -0.3777  -0.0478    * 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L  -0.3345   0.0910      
## paste(factor(Native_Nonnative), factor(Trait_type))2 M  -0.3694  -0.1957  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C  -0.7288   0.3081      
## paste(factor(Native_Nonnative), factor(Trait_type))3 L  -0.6899  -0.1884  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))3 M  -0.3279  -0.0631   ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C  -0.1802   0.1427      
## paste(factor(Native_Nonnative), factor(Trait_type))4 L  -0.2088   0.2061      
## paste(factor(Native_Nonnative), factor(Trait_type))4 M  -0.1899  -0.0066    * 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.t, linfct = contrMat(coef(rmod.mix.t), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Trait_type)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = ddd.new, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                       Estimate
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.188318
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.205675
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.238997
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.147962
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.308780
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.236585
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.465359
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.221741
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.044998
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.027578
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.124499
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.017356
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.050679
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.040356
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.120462
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.048267
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.277041
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.033422
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.143320
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.160741
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.063820
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.033322
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.057713
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.103105
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.030911
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.259685
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.016066
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.160677
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.178097
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.081176
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.091035
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.069783
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.002412
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.226362
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.017256
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.193999
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.211419
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.114498
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 -0.160818
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 -0.088624
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 -0.317397
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 -0.073779
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.102964
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.120384
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.023463
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.072195
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 -0.156579
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.087039
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.263782
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.281202
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.184281
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 -0.228774
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.014845
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.191587
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.209008
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.112087
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  0.243619
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  0.420361
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  0.437782
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  0.340861
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  0.176742
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  0.194163
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  0.097242
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0  0.017421
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 -0.079500
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0 -0.096921
##                                                                                                                      Std. Error
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.043195
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.029623
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.089114
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.112885
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.052407
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.265914
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.131633
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.073518
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.087391
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.109557
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.054456
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.034658
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.089386
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.112885
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.053221
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.265831
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.131398
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.073750
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.087655
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.109459
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.055042
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.084798
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.109596
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.044476
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.264646
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.129010
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.068301
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.082995
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.106107
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.046944
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.132169
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.080654
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.276637
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.152095
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.104713
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.084037
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.129150
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.081427
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.109713
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.285196
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.166839
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.125737
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.131077
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.137948
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.111187
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.266928
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.133869
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.074969
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.079449
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.107532
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.045245
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.287719
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.262093
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.276110
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.284080
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.267557
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.133316
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.151124
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.165084
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.134917
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.103344
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.123298
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.077635
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   0.127596
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   0.079339
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0   0.106188
##                                                                                                                      z value
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -4.360
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -6.943
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -2.682
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -1.311
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -5.892
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -0.890
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -3.535
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -3.016
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -0.515
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -0.252
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -2.286
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.501
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.567
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.357
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -2.263
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.182
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -2.108
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.453
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   1.635
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   1.468
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   1.159
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -0.393
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.527
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -2.318
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -0.117
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -2.013
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -0.235
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   1.936
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   1.678
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   1.729
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.689
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -0.865
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.009
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -1.488
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.165
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   2.308
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   1.637
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   1.406
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  -1.466
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  -0.311
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  -1.902
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  -0.587
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.786
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.873
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.211
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.270
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  -1.170
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   1.161
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   3.320
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   2.615
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   4.073
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  -0.795
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.057
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.694
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.736
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.419
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   1.827
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   2.782
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   2.652
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   2.526
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   1.710
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   1.575
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   1.253
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   0.137
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0  -1.002
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0  -0.913
##                                                                                                                      Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 1.30e-05
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 3.84e-12
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.007320
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.189950
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 3.82e-09
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.373623
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.000407
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.002560
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.606617
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.801258
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.022242
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.616523
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.570737
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.720718
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.023610
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.855920
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.034996
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.650418
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.102040
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.141969
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.246263
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.694348
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.598475
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.020437
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.907018
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.044124
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.814036
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.052871
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.093257
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.083769
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.490963
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.386922
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.993044
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.136674
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.869104
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.020972
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.101630
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.159679
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.142702
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.755994
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.057117
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.557357
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.432149
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.382838
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.832868
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.786803
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.242142
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.245638
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.000900
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.008921
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 4.64e-05
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.426538
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.954832
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.487758
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.461892
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.675270
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.067643
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.005410
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.008005
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.011522
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.087223
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.115314
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.210365
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 0.891403
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 0.316327
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0 0.361385
##                                                                                                                         
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.3.2.2 Trait type variation

# Overall
rmod.mix.tr.v <- rma.mv(yi ~ factor(Trait_type) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.tr.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0631  0.2513    346     no            Study 
## sigma^2.2  0.1832  0.4280   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3776) = 8348.3582, p-val < .0001
## 
## Test of Moderators (coefficients 1:3):
## QM(df = 3) = 46.0678, p-val < .0001
## 
## Model Results:
## 
##                      estimate      se    zval    pval    ci.lb   ci.ub      
## factor(Trait_type)C    0.0392  0.0393  0.9993  0.3176  -0.0377  0.1162      
## factor(Trait_type)L    0.1765  0.0356  4.9605  <.0001   0.1068  0.2462  *** 
## factor(Trait_type)M    0.1203  0.0226  5.3250  <.0001   0.0760  0.1645  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.t.v <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Trait_type)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.t.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0626  0.2501    346     no            Study 
## sigma^2.2  0.1803  0.4246   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3767) = 8300.8899, p-val < .0001
## 
## Test of Moderators (coefficients 1:12):
## QM(df = 12) = 72.5687, p-val < .0001
## 
## Model Results:
## 
##                                                         estimate      se 
## paste(factor(Native_Nonnative), factor(Trait_type))1 C    0.0420  0.0438 
## paste(factor(Native_Nonnative), factor(Trait_type))1 L    0.1615  0.0388 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M    0.1266  0.0249 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C    0.1929  0.1098 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L   -0.0921  0.1358 
## paste(factor(Native_Nonnative), factor(Trait_type))2 M    0.1361  0.0505 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C    0.1299  0.3419 
## paste(factor(Native_Nonnative), factor(Trait_type))3 L    0.2245  0.1492 
## paste(factor(Native_Nonnative), factor(Trait_type))3 M    0.1885  0.0782 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C   -0.1116  0.1031 
## paste(factor(Native_Nonnative), factor(Trait_type))4 L    0.6126  0.1357 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M    0.0460  0.0540 
##                                                            zval    pval 
## paste(factor(Native_Nonnative), factor(Trait_type))1 C   0.9586  0.3378 
## paste(factor(Native_Nonnative), factor(Trait_type))1 L   4.1603  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M   5.0878  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C   1.7576  0.0788 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L  -0.6780  0.4978 
## paste(factor(Native_Nonnative), factor(Trait_type))2 M   2.6982  0.0070 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C   0.3799  0.7040 
## paste(factor(Native_Nonnative), factor(Trait_type))3 L   1.5046  0.1324 
## paste(factor(Native_Nonnative), factor(Trait_type))3 M   2.4121  0.0159 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C  -1.0817  0.2794 
## paste(factor(Native_Nonnative), factor(Trait_type))4 L   4.5126  <.0001 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M   0.8533  0.3935 
##                                                           ci.lb   ci.ub      
## paste(factor(Native_Nonnative), factor(Trait_type))1 C  -0.0438  0.1278      
## paste(factor(Native_Nonnative), factor(Trait_type))1 L   0.0854  0.2375  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))1 M   0.0778  0.1753  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))2 C  -0.0222  0.4081    . 
## paste(factor(Native_Nonnative), factor(Trait_type))2 L  -0.3583  0.1741      
## paste(factor(Native_Nonnative), factor(Trait_type))2 M   0.0372  0.2350   ** 
## paste(factor(Native_Nonnative), factor(Trait_type))3 C  -0.5402  0.8000      
## paste(factor(Native_Nonnative), factor(Trait_type))3 L  -0.0679  0.5169      
## paste(factor(Native_Nonnative), factor(Trait_type))3 M   0.0353  0.3417    * 
## paste(factor(Native_Nonnative), factor(Trait_type))4 C  -0.3137  0.0906      
## paste(factor(Native_Nonnative), factor(Trait_type))4 L   0.3465  0.8786  *** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M  -0.0597  0.1518      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.t.v, linfct = contrMat(coef(rmod.mix.t.v), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Trait_type)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = rd, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                       Estimate
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.119491
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.084601
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.150972
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.134069
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.094165
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.087912
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.182535
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.146570
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 -0.153519
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.570602
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  0.004071
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.034890
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.031481
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.253560
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.025326
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.031579
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.063044
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.027079
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.273010
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  0.451111
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 -0.115420
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.066371
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.218670
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.009564
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.003311
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.097934
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.061969
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.238120
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  0.486001
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 -0.080530
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.285041
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.056807
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.063060
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.031563
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.004402
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.304491
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  0.419630
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 -0.146901
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.228234
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.221981
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.316604
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.280639
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 -0.019449
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.704671
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  0.138141
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 -0.006253
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.088370
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.052405
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 -0.247683
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  0.476437
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 -0.090093
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.094623
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.058658
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 -0.241431
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  0.482690
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 -0.083841
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 -0.035965
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 -0.336054
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  0.388067
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 -0.178464
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 -0.300089
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  0.424032
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 -0.142499
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0  0.724120
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0  0.157590
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0 -0.566530
##                                                                                                                      Std. Error
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.055561
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.041625
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.117489
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.142380
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.064799
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.344395
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.155208
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.088569
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.111234
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.141682
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.067578
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.042348
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.116021
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.141037
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.062624
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.343839
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.153891
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.086657
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.109671
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.140285
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.065197
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.111510
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.137592
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.052628
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.342458
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.150923
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.080399
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.104907
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.136738
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.056214
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.172944
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.112032
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.358795
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.185015
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.133662
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.123157
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.171639
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.112893
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.141438
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.367669
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.201395
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.155987
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.168785
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.184194
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.142995
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.345007
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.157011
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.089795
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.106258
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.141130
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.060840
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.370128
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.339252
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.356825
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.367592
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.345721
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.161375
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.181154
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.201403
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   0.158281
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.128294
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.155812
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   0.092881
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   0.166540
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   0.105946
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0   0.139255
##                                                                                                                      z value
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   2.151
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   2.032
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   1.285
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -0.942
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   1.453
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.255
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   1.176
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   1.655
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0  -1.380
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   4.027
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0   0.060
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.824
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.271
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -1.798
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.404
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -0.092
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.410
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   0.312
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -2.489
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0   3.216
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0  -1.770
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.595
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -1.589
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.182
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.010
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.649
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   0.771
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -2.270
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0   3.554
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0  -1.433
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -1.648
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -0.507
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -0.176
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   0.171
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -0.033
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -2.472
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0   2.445
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0  -1.301
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   1.614
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.604
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   1.572
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   1.799
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0  -0.115
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   3.826
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0   0.966
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  -0.018
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.563
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   0.584
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  -2.331
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0   3.376
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0  -1.481
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.256
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   0.173
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  -0.677
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0   1.313
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0  -0.243
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  -0.223
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  -1.855
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0   1.927
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0  -1.128
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  -2.339
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0   2.721
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0  -1.534
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   4.348
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0   1.487
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0  -4.068
##                                                                                                                      Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.031506
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.042110
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.198795
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.346382
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.146172
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.798518
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.239570
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.097952
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.167544
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 5.64e-05
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 0.951960
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.410003
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.786129
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.072204
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.685906
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.926823
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.682051
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.754674
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.012798
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.001301
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 0.076674
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.551705
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.112000
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.855799
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.992286
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.516402
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.440845
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.023218
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.000379
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 0.151989
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.099318
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.612108
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.860486
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.864542
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.973726
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.013421
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.014492
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 0.193175
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.106599
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.546008
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.115938
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.071999
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.908261
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.000130
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 0.334017
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.985540
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.573552
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.559484
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.019756
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.000736
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 0.138655
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.798222
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.862727
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.498654
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.189145
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0 0.808385
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.823640
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.063586
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.054002
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 0.259527
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.019332
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.006500
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 0.124981
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 1.37e-05
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 0.136894
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0 4.74e-05
##                                                                                                                         
## paste(factor(Native_Nonnative), factor(Trait_type))1 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))1 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))2 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))1 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))2 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))2 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))3 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0 .  
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 L == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 C - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 *  
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0 ** 
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))3 M == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 L - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0 ***
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 C == 0    
## paste(factor(Native_Nonnative), factor(Trait_type))4 M - paste(factor(Native_Nonnative), factor(Trait_type))4 L == 0 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.3.3 Competition type

3.3.3.1 Competition type trait mean

# Overall
rmod.mix.comp <- rma.mv(yi ~ factor(Competitor_Type) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.comp
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1084  0.3292    346     no            Study 
## sigma^2.2  0.1799  0.4241   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:2):
## QM(df = 2) = 68.3072, p-val < .0001
## 
## Model Results:
## 
##                           estimate      se     zval    pval    ci.lb    ci.ub 
## factor(Competitor_Type)0   -0.2140  0.0275  -7.7822  <.0001  -0.2679  -0.1601 
## factor(Competitor_Type)1   -0.1304  0.0244  -5.3363  <.0001  -0.1784  -0.0825 
##                               
## factor(Competitor_Type)0  *** 
## factor(Competitor_Type)1  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.c <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Competitor_Type)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = ddd.new)
rmod.mix.c
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.1099  0.3315    346     no            Study 
## sigma^2.2  0.1778  0.4216   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test of Moderators (coefficients 1:6):
## QM(df = 6) = 97.5858, p-val < .0001
## 
## Model Results:
## 
##                                                              estimate      se 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0   -0.2094  0.0284 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1   -0.1142  0.0276 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1   -0.2554  0.0421 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0   -0.3241  0.0720 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1    0.0641  0.1339 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1   -0.0665  0.0440 
##                                                                 zval    pval 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0  -7.3849  <.0001 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1  -4.1405  <.0001 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1  -6.0657  <.0001 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0  -4.5000  <.0001 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1   0.4789  0.6320 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1  -1.5123  0.1304 
##                                                                ci.lb    ci.ub 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0  -0.2650  -0.1538 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1  -0.1682  -0.0601 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1  -0.3379  -0.1728 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0  -0.4653  -0.1830 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1  -0.1983   0.3265 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1  -0.1527   0.0197 
##                                                                  
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1      
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.c, linfct = contrMat(coef(rmod.mix.c), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Competitor_Type)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = ddd.new, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                                Estimate
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.09524
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 -0.04594
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 -0.11472
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.27354
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.14290
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0 -0.14118
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0 -0.20997
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.17830
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.04766
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0 -0.06879
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.31948
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.18884
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  0.38826
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  0.25762
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0 -0.13064
##                                                                                                                                Std. Error
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.03268
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.04549
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.07315
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.13619
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.04787
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.04547
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.07484
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.13604
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.04631
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.07954
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.13601
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.03922
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0    0.15129
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0    0.08123
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0    0.13744
##                                                                                                                                z value
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   2.914
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  -1.010
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  -1.568
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   2.009
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   2.985
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  -3.105
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  -2.806
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   1.311
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   1.029
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  -0.865
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   2.349
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   4.815
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0   2.566
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0   3.171
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0  -0.951
##                                                                                                                                Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.00357
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.31259
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.11679
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.04458
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.00283
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.00191
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.00502
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.18997
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.30347
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.38715
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.01883
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0 1.47e-06
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  0.01028
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  0.00152
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0  0.34183
##                                                                                                                                   
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 *  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0 ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0 ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0 *  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0 ***
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0 *  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0 ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

3.3.3.2 Competition type trait variation

# Overall
rmod.mix.comp.v <- rma.mv(yi ~ factor(Competitor_Type) - 1, vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.comp.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0644  0.2538    346     no            Study 
## sigma^2.2  0.1829  0.4276   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3777) = 8354.1608, p-val < .0001
## 
## Test of Moderators (coefficients 1:2):
## QM(df = 2) = 40.6719, p-val < .0001
## 
## Model Results:
## 
##                           estimate      se    zval    pval   ci.lb   ci.ub      
## factor(Competitor_Type)0    0.1600  0.0293  5.4635  <.0001  0.1026  0.2174  *** 
## factor(Competitor_Type)1    0.1033  0.0242  4.2686  <.0001  0.0559  0.1507  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Interaction
rmod.mix.c.v <- rma.mv(yi ~ 0 + paste(factor(Native_Nonnative), factor(Competitor_Type)), vi, random = list(~1 |Study/id, ~1 |Pub_Year, ~1 |Ecosystem, ~1 |Study_Test_Type), method = "ML", data = rd)
rmod.mix.c.v
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0633  0.2516    346     no            Study 
## sigma^2.2  0.1830  0.4277   3779     no         Study/id 
## sigma^2.3  0.0000  0.0000     31     no         Pub_Year 
## sigma^2.4  0.0000  0.0000      3     no        Ecosystem 
## sigma^2.5  0.0000  0.0000      3     no  Study_Test_Type 
## 
## Test for Residual Heterogeneity:
## QE(df = 3773) = 8312.3450, p-val < .0001
## 
## Test of Moderators (coefficients 1:6):
## QM(df = 6) = 43.8506, p-val < .0001
## 
## Model Results:
## 
##                                                              estimate      se 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0    0.1571  0.0305 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1    0.0985  0.0281 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1    0.1376  0.0466 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0    0.1927  0.0835 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1    0.2104  0.1418 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1    0.0601  0.0497 
##                                                                zval    pval 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0  5.1555  <.0001 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1  3.5059  0.0005 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1  2.9496  0.0032 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0  2.3091  0.0209 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1  1.4837  0.1379 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1  1.2105  0.2261 
##                                                                ci.lb   ci.ub 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0   0.0973  0.2168 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1   0.0434  0.1536 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1   0.0462  0.2290 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0   0.0291  0.3563 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1  -0.0675  0.4883 
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1  -0.0372  0.1574 
##                                                                  
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 0  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1  *** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1   ** 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0    * 
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1      
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1      
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Post-hoc test
glht_test <- glht(rmod.mix.c.v, linfct = contrMat(coef(rmod.mix.c.v), type = "Tukey"))
summary(glht_test, test = adjusted("none"))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## 
## Fit: rma.mv(yi = yi ~ 0 + paste(factor(Native_Nonnative), factor(Competitor_Type)), 
##     V = vi, random = list(~1 | Study/id, ~1 | Pub_Year, ~1 | 
##         Ecosystem, ~1 | Study_Test_Type), data = rd, method = "ML")
## 
## Linear Hypotheses:
##                                                                                                                                Estimate
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 -0.05856
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 -0.01947
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.03567
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  0.05332
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 -0.09695
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.03909
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.09424
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  0.11188
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0 -0.03839
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.05515
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  0.07280
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0 -0.07747
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  0.01765
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0 -0.13262
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0 -0.15027
##                                                                                                                                Std. Error
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.03808
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.05260
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.08680
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.14485
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0    0.05616
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.05209
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.08719
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.14439
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0    0.05390
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.09347
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.14729
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0    0.05342
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0    0.16435
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0    0.09571
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0    0.14877
##                                                                                                                                z value
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  -1.538
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  -0.370
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.411
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.368
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  -1.726
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.750
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   1.081
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.775
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  -0.712
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   0.590
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   0.494
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  -1.450
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0   0.107
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  -1.386
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0  -1.010
##                                                                                                                                Pr(>|z|)
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.1241
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.7112
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.6811
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.7128
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0   0.0843
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.4530
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.2798
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.4384
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0   0.4764
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   0.5552
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   0.6211
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0   0.1470
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0   0.9145
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0   0.1659
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0   0.3125
##                                                                                                                                 
## paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 0 == 0 .
## paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))1 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))2 1 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 0 == 0  
## paste(factor(Native_Nonnative), factor(Competitor_Type))4 1 - paste(factor(Native_Nonnative), factor(Competitor_Type))3 1 == 0  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## (Adjusted p values reported -- none method)

4. Graph

4.1 Main figures

# Overall mean
d = read.xlsx("Mean for graphs_0725.xlsx", sheet = "Overall")
txt <- d[,c(1)]
hr <- d[,c(2:9)] 

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper, Category = Category)
data$study <- factor(data$study, levels = c("Nonnative on nonnative (K = 158)",
                                            "Native on nonnative (K = 328)",
                                            "Nonnative on native (K = 388)",
                                            "Native on native (K = 2995)",
                                            "Overall effect (K = 3779)"))
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Convert y variables to ordered factors
data <- data[1:5,]

# Create forest plots using the preferred style
p <- ggplot(data, aes(y = study, x = effect, color = Category))
p <- p + geom_pointrange(aes(xmin = ci_lower, xmax = ci_upper), position = position_dodge(0.5), size = 0.5)
p <- p + geom_point(size = 4)
p <- p +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0), legend.position = "none")
p <- p + labs(x = "Effect Size (lnRR)", y = "")  # Adding axis labels
p <- p + geom_vline(xintercept = 0, color = "darkgray", linetype = "dashed", size = 0.6)
p <- p + scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))
p <- p + scale_x_continuous(limits = c(-0.4, 0.1))

# Print the plot
print(p)

# Overall variation
d = read.xlsx("Variation for graphs_0725.xlsx", sheet = "Overall")
txt <- d[,c(1)]
hr <- d[,c(2:9)] 

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper, Category = Category) 
data$study <- factor(data$study, levels = c("Nonnative on nonnative (K = 158)",
                                            "Native on nonnative (K = 328)",
                                            "Nonnative on native (K = 388)",
                                            "Native on native (K = 2995)",
                                            "Overall effect (K = 3779)"))
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Convert y variables to ordered factors
data <- data[1:5,]

# Create forest plots using the preferred style
p <- ggplot(data, aes(y = study, x = effect, color = Category))
p <- p + geom_point(size = 4)
p <- p + geom_pointrange(aes(xmin = ci_lower, xmax = ci_upper), position = position_dodge(0.5), size = 0.5)
p <- p +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none"
)
p <- p + labs(x = "Effect Size (lnCVR)", y = "")  # Adding axis labels
p <- p + geom_vline(xintercept = 0, color = "darkgray", linetype = "dashed", size = 0.6)
p <- p + scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))
p <- p + scale_x_continuous(limits = c(-0.1, 0.4))

# Print the plot
print(p)

# Organism types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Organisms")
txt <- d[1:11, 1]
hr <- d[1:11, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9[1:11]

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 12)",
"Native on nonnative (K = 13)",
"Nonnative on native (K = 25)",
"Native on native (K = 468)",
"Overall effect (K = 518)",
" ",
"Nonnative on nonnative (K = 146)",
"Native on nonnative (K = 315)",
"Nonnative on native (K = 363)",
"Native on native (K = 2437)",
"Overall effect (K = 3261)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4)+
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study))+
  scale_x_continuous(limits = c(-0.75, 0.35)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),        
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

# Organism types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Organisms")
txt <- d[1:11, 1]
hr <- d[1:11, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 12)",
"Native on nonnative (K = 13)",
"Nonnative on native (K = 25)",
"Native on native (K = 468)",
"Overall effect (K = 518)",
" ",
"Nonnative on nonnative (K = 146)",
"Native on nonnative (K = 315)",
"Nonnative on native (K = 363)",
"Native on native (K = 2437)",
"Overall effect (K = 3261)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4) +
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study)) +
  scale_x_continuous(limits = c(-0.6, 2.4)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),        
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

# Trait types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Trait types")
txt <- d[1:16, 1]
hr <- d[1:16, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Native on nonnative (K = 58)",
"Nonnative on native (K = 51)",
"Native on native (K = 547)",
"Overall effect (K = 659)",
"  ",
"Nonnative on nonnative (K = 27)",
"Native on nonnative (K = 34)",
"Nonnative on native (K = 54)",
"Native on native (K = 495)",
"Overall effect (K = 610)",
" ",
"Nonnative on nonnative (K = 128)",
"Native on nonnative (K = 236)",
"Nonnative on native (K = 283)",
"Native on native (K = 1863)",
"Overall effect (K = 2510)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4) +
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study)) +
  scale_x_continuous(limits = c(-0.78, 0.34)) + 
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),        
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

# Trait types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Trait types")
txt <- d[1:16, 1]
hr <- d[1:16, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Native on nonnative (K = 58)",
"Nonnative on native (K = 51)",
"Native on native (K = 547)",
"Overall effect (K = 659)",
"  ",
"Nonnative on nonnative (K = 27)",
"Native on nonnative (K = 34)",
"Nonnative on native (K = 54)",
"Native on native (K = 495)",
"Overall effect (K = 610)",
" ",
"Nonnative on nonnative (K = 128)",
"Native on nonnative (K = 236)",
"Nonnative on native (K = 283)",
"Native on native (K = 1863)",
"Overall effect (K = 2510)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4) +
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study)) +
  scale_x_continuous(limits = c(-0.5, 1.2)) + 
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

# Competition types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Competition types")
txt <- d[1:9, 1]
hr <- d[1:9, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 55)",
"Native on nonnative (K = 328)",
"Nonnative on native (K = 388)",
"Native on native (K = 1867)",
"Overall effect (K = 2638)",
" ",
"Nonnative on nonnative (K = 103)",
"Native on native (K = 1038)",
"Overall effect (K = 1141)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4) +
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study)) +
  scale_x_continuous(limits = c(-0.5, 0.49)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

# Competition types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Competition types")
txt <- d[1:9, 1]
hr <- d[1:9, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 55)",
"Native on nonnative (K = 328)",
"Nonnative on native (K = 388)",
"Native on native (K = 1867)",
"Overall effect (K = 2638)",
" ",
"Nonnative on nonnative (K = 103)",
"Native on native (K = 1038)",
"Overall effect (K = 1141)"))

# Plot
ggplot(data, aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category)) +
  geom_errorbar(aes(xmin = ci_lower, xmax = ci_upper), width = 0) +
  geom_point(size = 4) +
  scale_y_discrete(breaks = levels(data$study), labels = levels(data$study), limits = levels(data$study)) +
  scale_x_continuous(limits = c(-0.1, 0.55)) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c("black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3", "black", "#6A9FB5", "#A3BFD9", "brown", "antiquewhite3"))

4.2 Figures with data distributions

# Overall mean
d = read.xlsx("Mean for graphs_0725.xlsx", sheet = "Overall")
txt <- d[,c(1)]
hr <- d[,c(2:9)] 

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper, Category = Category)
data$study <- factor(data$study, levels = c("Nonnative on nonnative (K = 158)",
                                            "Native on nonnative (K = 328)",
                                            "Nonnative on native (K = 388)",
                                            "Native on native (K = 2995)",
                                            "Overall effect (K = 3779)"))
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Convert y variables to ordered factors
data <- data[1:5,]

# Ensure Native_Nonnative is a character variable
ddd.new$Native_Nonnative <- as.character(ddd.new$Native_Nonnative)
NN_d = ddd.new[ddd.new$Native_Nonnative[] == "1",]
IN_d = ddd.new[ddd.new$Native_Nonnative[] == "2",]
II_d = ddd.new[ddd.new$Native_Nonnative[] == "3",]
NI_d = ddd.new[ddd.new$Native_Nonnative[] == "4",]

ddd.new$Native_Nonnative[ddd.new$Native_Nonnative == '1'] = 'Native on native (K = 2995)'
ddd.new$Native_Nonnative[ddd.new$Native_Nonnative == '2'] = 'Nonnative on native (K = 388)'
ddd.new$Native_Nonnative[ddd.new$Native_Nonnative == '3'] = 'Nonnative on nonnative (K = 158)'
ddd.new$Native_Nonnative[ddd.new$Native_Nonnative == '4'] = 'Native on nonnative (K = 328)'

# Create the Overall dataframe, aligning column names with ddd.new
ddd.new_overall <- data.frame(
  Native_Nonnative = "Overall effect (K = 3779)",  # Add Overall category
  yi = ddd.new$yi  # Include all yi data
)

# Add missing columns from ddd.new to ddd.new_overall
missing_cols <- setdiff(names(ddd.new), names(ddd.new_overall))  # Find columns missing in ddd.new_overall
for (col in missing_cols) {
  ddd.new_overall[[col]] <- NA  # Fill missing columns with NA
}

# Ensure ddd.new includes all columns in ddd.new_overall
extra_cols <- setdiff(names(ddd.new_overall), names(ddd.new))  # Find columns missing in ddd.new
for (col in extra_cols) {
  ddd.new[[col]] <- NA  # Fill missing columns with NA
}

# Combine datasets by rows
ddd.new_combined <- rbind(ddd.new, ddd.new_overall)

# Plot the ggplot visualization
p <- ggplot() +
      geom_jitter(data = ddd.new_combined, 
                  aes(y = Native_Nonnative, x = yi), 
                  alpha = 0.1, 
                  color = "lightgray",
                  width = 0.4, 
                  height = 0.1) +
      # Pointrange layer
      geom_pointrange(data = data, 
                      aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category),
                      size = 0.5) +
      theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
      labs(x = "Effect Size (lnRR)", y = "") +
      # Add reference line
      geom_vline(xintercept = 0, color = "darkgray", linetype = "dashed", size = 0.6) +
      # Customize colors
      scale_color_manual(values = c("black", "#6A9FB5", 
                                     "#A3BFD9", "brown", "antiquewhite3"))

# Print the plot
print(p)

# Overall variation
d = read.xlsx("Variation for graphs_0725.xlsx", sheet = "Overall")
txt <- d[,c(1)]
hr <- d[,c(2:9)] 

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper, Category = Category)
data$study <- factor(data$study, levels = c("Nonnative on nonnative (K = 158)",
                                            "Native on nonnative (K = 328)",
                                            "Nonnative on native (K = 388)",
                                            "Native on native (K = 2995)",
                                            "Overall effect (K = 3779)"))
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Convert y variables to ordered factors
data <- data[1:5,]

# Ensure Native_Nonnative is a character variable
NN_r = rd[rd$Native_Nonnative[] == "1",]
IN_r = rd[rd$Native_Nonnative[] == "2",]
II_r = rd[rd$Native_Nonnative[] == "3",]
NI_r = rd[rd$Native_Nonnative[] == "4",]

rd$Native_Nonnative[rd$Native_Nonnative == '1'] = 'Native on native (K = 2995)'
rd$Native_Nonnative[rd$Native_Nonnative == '2'] = 'Nonnative on native (K = 388)'
rd$Native_Nonnative[rd$Native_Nonnative == '3'] = 'Nonnative on nonnative (K = 158)'
rd$Native_Nonnative[rd$Native_Nonnative == '4'] = 'Native on nonnative (K = 328)'
rd$Native_Nonnative <- as.character(rd$Native_Nonnative)

# Create the Overall dataframe, ensuring column names match rd
rd_overall <- data.frame(
  Native_Nonnative = rep("Overall effect (K = 3779)", nrow(rd)),  # Add the Overall category
  yi = rd$yi  # Include all yi data
)

# Add missing columns from rd to rd_overall
missing_cols <- setdiff(names(rd), names(rd_overall))  # Find columns in rd that are missing in rd_overall
for (col in missing_cols) {
  rd_overall[[col]] <- NA  # Fill missing columns with NA
}

# Combine the two datasets by row
rd_combined <- rbind(rd, rd_overall)

# Create the ggplot visualization
p <- ggplot() +
      geom_jitter(data = rd_combined, 
                  aes(y = Native_Nonnative, x = yi), 
                  alpha = 0.1, 
                  color = "lightgray",
                  width = 0.4, 
                  height = 0.1) +
      # Pointrange layer
      geom_pointrange(data = data, 
                      aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category),
                      size = 0.5) +
      theme(panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
            plot.background = element_blank(),         
            panel.grid.major = element_blank(),        
            panel.grid.minor = element_blank(),
            plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
            legend.position = "none") +
            labs(x = "Effect Size (lnCVR)", y = "")+
      # Add a reference line
      geom_vline(xintercept = 0, color = "darkgray", linetype = "dashed", size = 0.6) +
      # Customize colors
      scale_color_manual(values = c("black", "#6A9FB5", 
                                     "#A3BFD9", "brown", "antiquewhite3"))

# Print the plot
print(p)

# Organism types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Organisms")
txt <- d[1:11, 1]
hr <- d[1:11, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d[1:11,]$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 12)",
"Native on nonnative (K = 13)",
"Nonnative on native (K = 25)",
"Native on native (K = 468)",
"Overall effect (K = 518)",
" ",
"Nonnative on nonnative (K = 146)",
"Native on nonnative (K = 315)",
"Nonnative on native (K = 363)",
"Native on native (K = 2437)",
"Overall effect (K = 3261)"))

# Plants
NN_d$Organism[NN_d$Organism == "1"] = "Native on native (K = 2437)"
II_d$Organism[II_d$Organism == "1"] = "Nonnative on nonnative (K = 146)"
NI_d$Organism[NI_d$Organism == "1"] = "Native on nonnative (K = 315)"
IN_d$Organism[IN_d$Organism == "1"] = "Nonnative on native (K = 363)"

# Animals
NN_d$Organism[NN_d$Organism == "2"] = "Native on native (K = 468)"
II_d$Organism[II_d$Organism == "2"] = "Nonnative on nonnative (K = 12)"
NI_d$Organism[NI_d$Organism == "2"] = "Native on nonnative (K = 13)"
IN_d$Organism[IN_d$Organism == "2"] = "Nonnative on native (K = 25)"

# Merge back into ddd.new
ddd.new <- rbind(NN_d, IN_d, II_d, NI_d)

# Filter matching conditions to create a new database
p_new_data <- ddd.new[ddd.new$Organism %in% c("1", "Native on native (K = 2437)", "Nonnative on nonnative (K = 146)", "Native on nonnative (K = 315)", "Nonnative on native (K = 363)"), ]
p_new_data$Organism <- "Overall effect (K = 3261)"
a_new_data <- ddd.new[ddd.new$Organism %in% c("2", "Native on native (K = 468)", "Nonnative on nonnative (K = 12)", "Native on nonnative (K = 13)", "Nonnative on native (K = 25)"), ]
a_new_data$Organism <- "Overall effect (K = 518)"

# Merge the new database and the old database
combined_data <- rbind(ddd.new, p_new_data, a_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Organism, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

# Organism types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Organisms")
txt <- d[1:11, 1]
hr <- d[1:11, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d[1:11,]$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 12)",
"Native on nonnative (K = 13)",
"Nonnative on native (K = 25)",
"Native on native (K = 468)",
"Overall effect (K = 518)",
" ",
"Nonnative on nonnative (K = 146)",
"Native on nonnative (K = 315)",
"Nonnative on native (K = 363)",
"Native on native (K = 2437)",
"Overall effect (K = 3261)"))

# Plants
NN_r$Organism[NN_r$Organism == "1"] = "Native on native (K = 2437)"
II_r$Organism[II_r$Organism == "1"] = "Nonnative on nonnative (K = 146)"
NI_r$Organism[NI_r$Organism == "1"] = "Native on nonnative (K = 315)"
IN_r$Organism[IN_r$Organism == "1"] = "Nonnative on native (K = 363)"

# Animals
NN_r$Organism[NN_r$Organism == "2"] = "Native on native (K = 468)"
II_r$Organism[II_r$Organism == "2"] = "Nonnative on nonnative (K = 12)"
NI_r$Organism[NI_r$Organism == "2"] = "Native on nonnative (K = 13)"
IN_r$Organism[IN_r$Organism == "2"] = "Nonnative on native (K = 25)"

# Merge back into rd
rd <- rbind(NN_r, IN_r, II_r, NI_r)

# Filter matching conditions to create a new database
p_new_data <- rd[rd$Organism %in% c("1", "Native on native (K = 2437)", "Nonnative on nonnative (K = 146)", "Native on nonnative (K = 315)", "Nonnative on native (K = 363)"), ]
p_new_data$Organism <- "Overall effect (K = 3261)"
a_new_data <- rd[rd$Organism %in% c("2", "Native on native (K = 468)", "Nonnative on nonnative (K = 12)", "Native on nonnative (K = 13)", "Nonnative on native (K = 25)"), ]
a_new_data$Organism <- "Overall effect (K = 518)"

# Merge the new database and the old database
combined_data <- rbind(rd, p_new_data, a_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Organism, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

# Trait types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Trait types")
txt <- d[1:16, 1]
hr <- d[1:16, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Native on nonnative (K = 58)",
"Nonnative on native (K = 51)",
"Native on native (K = 547)",
"Overall effect (K = 659)",
"  ",
"Nonnative on nonnative (K = 27)",
"Native on nonnative (K = 34)",
"Nonnative on native (K = 54)",
"Native on native (K = 495)",
"Overall effect (K = 610)",
" ",
"Nonnative on nonnative (K = 128)",
"Native on nonnative (K = 236)",
"Nonnative on native (K = 283)",
"Native on native (K = 1863)",
"Overall effect (K = 2510)"))

# Morphological traits
NN_d$Trait_type[NN_d$Trait_type == "M"] = "Native on native (K = 1863)"
II_d$Trait_type[II_d$Trait_type == "M"] = "Nonnative on nonnative (K = 128)"
NI_d$Trait_type[NI_d$Trait_type == "M"] = "Native on nonnative (K = 236)"
IN_d$Trait_type[IN_d$Trait_type == "M"] = "Nonnative on native (K = 283)"

# Life history traits
NN_d$Trait_type[NN_d$Trait_type == "L"] = "Native on native (K = 495)"
II_d$Trait_type[II_d$Trait_type == "L"] = "Nonnative on nonnative (K = 27)"
NI_d$Trait_type[NI_d$Trait_type == "L"] = "Native on nonnative (K = 34)"
IN_d$Trait_type[IN_d$Trait_type == "L"] = "Nonnative on native (K = 54)"

# Chemical/Physiological traits
NN_d$Trait_type[NN_d$Trait_type == "C"] = "Native on native (K = 547)"
NI_d$Trait_type[NI_d$Trait_type == "C"] = "Native on nonnative (K = 58)"
IN_d$Trait_type[IN_d$Trait_type == "C"] = "Nonnative on native (K = 51)"

# Merge back into ddd.new
ddd.new <- rbind(NN_d, IN_d, II_d, NI_d)

# Filter matching conditions to create a new database
m_new_data <- ddd.new[ddd.new$Trait_type %in% c("M", "Native on native (K = 1863)", "Nonnative on nonnative (K = 128)", "Native on nonnative (K = 236)", "Nonnative on native (K = 283)"), ]
m_new_data$Trait_type <- "Overall effect (K = 2510)"
l_new_data <- ddd.new[ddd.new$Trait_type %in% c("L", "Native on native (K = 495)", "Nonnative on nonnative (K = 27)", "Native on nonnative (K = 34)", "Nonnative on native (K = 54)"), ]
l_new_data$Trait_type <- "Overall effect (K = 610)"
c_new_data <- ddd.new[ddd.new$Trait_type %in% c("C", "Native on native (K = 547)", "Native on nonnative (K = 58)", "Nonnative on native (K = 51)"), ]
c_new_data$Trait_type <- "Overall effect (K = 659)"

# Merge the new database and the old database
combined_data <- rbind(ddd.new, m_new_data, l_new_data, c_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Trait_type, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

# Trait types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Trait types")
txt <- d[1:16, 1]
hr <- d[1:16, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Native on nonnative (K = 58)",
"Nonnative on native (K = 51)",
"Native on native (K = 547)",
"Overall effect (K = 659)",
"  ",
"Nonnative on nonnative (K = 27)",
"Native on nonnative (K = 34)",
"Nonnative on native (K = 54)",
"Native on native (K = 495)",
"Overall effect (K = 610)",
" ",
"Nonnative on nonnative (K = 128)",
"Native on nonnative (K = 236)",
"Nonnative on native (K = 283)",
"Native on native (K = 1863)",
"Overall effect (K = 2510)"))

# Morphological traits
NN_r$Trait_type[NN_r$Trait_type == "M"] = "Native on native (K = 1863)"
II_r$Trait_type[II_r$Trait_type == "M"] = "Nonnative on nonnative (K = 128)"
NI_r$Trait_type[NI_r$Trait_type == "M"] = "Native on nonnative (K = 236)"
IN_r$Trait_type[IN_r$Trait_type == "M"] = "Nonnative on native (K = 283)"

# Life history traits
NN_r$Trait_type[NN_r$Trait_type == "L"] = "Native on native (K = 495)"
II_r$Trait_type[II_r$Trait_type == "L"] = "Nonnative on nonnative (K = 27)"
NI_r$Trait_type[NI_r$Trait_type == "L"] = "Native on nonnative (K = 34)"
IN_r$Trait_type[IN_r$Trait_type == "L"] = "Nonnative on native (K = 54)"

# Chemical/Physiological traits
NN_r$Trait_type[NN_r$Trait_type == "C"] = "Native on native (K = 547)"
NI_r$Trait_type[NI_r$Trait_type == "C"] = "Native on nonnative (K = 58)"
IN_r$Trait_type[IN_r$Trait_type == "C"] = "Nonnative on native (K = 51)"

# Merge back into rd
rd <- rbind(NN_r, IN_r, II_r, NI_r)

# Filter matching conditions to create a new database
m_new_data <- rd[rd$Trait_type %in% c("M", "Native on native (K = 1863)", "Nonnative on nonnative (K = 128)", "Native on nonnative (K = 236)", "Nonnative on native (K = 283)"), ]
m_new_data$Trait_type <- "Overall effect (K = 2510)"
l_new_data <- rd[rd$Trait_type %in% c("L", "Native on native (K = 495)", "Nonnative on nonnative (K = 27)", "Native on nonnative (K = 34)", "Nonnative on native (K = 54)"), ]
l_new_data$Trait_type <- "Overall effect (K = 610)"
c_new_data <- rd[rd$Trait_type %in% c("C", "Native on native (K = 547)", "Native on nonnative (K = 58)", "Nonnative on native (K = 51)"), ]
c_new_data$Trait_type <- "Overall effect (K = 659)"

# Merge the new database and the old database
combined_data <- rbind(rd, m_new_data, l_new_data, c_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Trait_type, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

# Competition types mean
d <- read.xlsx("Mean for graphs_0725.xlsx", sheet = "Competition types")
txt <- d[1:9, 1]
hr <- d[1:9, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 55)",
"Native on nonnative (K = 328)",
"Nonnative on native (K = 388)",
"Native on native (K = 1867)",
"Overall effect (K = 2638)",
" ",
"Nonnative on nonnative (K = 103)",
"Native on native (K = 1038)",
"Overall effect (K = 1141)"))

# Intraspecific competition
NN_d$Competitor_Type[NN_d$Competitor_Type == "0"] = "Native on native (K = 1038)"
II_d$Competitor_Type[II_d$Competitor_Type == "0"] = "Nonnative on nonnative (K = 103)"

# Interspecific competition
NN_d$Competitor_Type[NN_d$Competitor_Type == "1"] = "Native on native (K = 1867)"
II_d$Competitor_Type[II_d$Competitor_Type == "1"] = "Nonnative on nonnative (K = 55)"
NI_d$Competitor_Type[NI_d$Competitor_Type == "1"] = "Native on nonnative (K = 328)"
IN_d$Competitor_Type[IN_d$Competitor_Type == "1"] = "Nonnative on native (K = 388)"

# Merge back into ddd.new
ddd.new <- rbind(NN_d, IN_d, II_d, NI_d)

# Filter matching conditions to create a new database
tra_new_data <- ddd.new[ddd.new$Competitor_Type %in% c("Native on native (K = 1038)", "Nonnative on nonnative (K = 103)"), ]
tra_new_data$Competitor_Type <- "Overall effect (K = 1141)"
ter_new_data <- ddd.new[ddd.new$Competitor_Type %in% c("Native on native (K = 1867)", "Nonnative on nonnative (K = 55)", "Native on nonnative (K = 328)", "Nonnative on native (K = 388)"), ]
ter_new_data$Competitor_Type <- "Overall effect (K = 2638)"

# Merge the new database and the old database
combined_data <- rbind(ddd.new, tra_new_data, ter_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Competitor_Type, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnRR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

# Competition types variation
d <- read.xlsx("Variation for graphs_0725.xlsx", sheet = "Competition types")
txt <- d[1:9, 1]
hr <- d[1:9, 2:9]

study_names <- txt
effect_estimates <- hr$mean
ci_lower <- hr$lower
ci_upper <- hr$upper
Category <- d$X9

# Create the data frame
data <- data.frame(study = study_names, effect = effect_estimates, ci_lower = ci_lower, ci_upper = ci_upper,
                   Category = Category)
data$Category <- factor(data$Category,
                        levels = c("Overall",
                                   "Native on native",
                                   "Nonnative on native",
                                   "Native on nonnative",
                                   "Nonnative on nonnative"))

# Adjusting factor levels with spacing
data$study <- factor(data$study, levels = c(
"Nonnative on nonnative (K = 55)",
"Native on nonnative (K = 328)",
"Nonnative on native (K = 388)",
"Native on native (K = 1867)",
"Overall effect (K = 2638)",
" ",
"Nonnative on nonnative (K = 103)",
"Native on native (K = 1038)",
"Overall effect (K = 1141)"))

# Intraspecific competition
NN_r$Competitor_Type[NN_r$Competitor_Type == "0"] = "Native on native (K = 1038)"
II_r$Competitor_Type[II_r$Competitor_Type == "0"] = "Nonnative on nonnative (K = 103)"

# Interspecific competition
NN_r$Competitor_Type[NN_r$Competitor_Type == "1"] = "Native on native (K = 1867)"
II_r$Competitor_Type[II_r$Competitor_Type == "1"] = "Nonnative on nonnative (K = 55)"
NI_r$Competitor_Type[NI_r$Competitor_Type == "1"] = "Native on nonnative (K = 328)"
IN_r$Competitor_Type[IN_r$Competitor_Type == "1"] = "Nonnative on native (K = 388)"

# Merge back into ddd.new
rd <- rbind(NN_r, IN_r, II_r, NI_r)

# Filter matching conditions to create a new database
tra_new_data <- rd[rd$Competitor_Type %in% c("Native on native (K = 1038)", "Nonnative on nonnative (K = 103)"), ]
tra_new_data$Competitor_Type <- "Overall effect (K = 1141)"
ter_new_data <- rd[rd$Competitor_Type %in% c("Native on native (K = 1867)", "Nonnative on nonnative (K = 55)", "Native on nonnative (K = 328)", "Nonnative on native (K = 388)"), ]
ter_new_data$Competitor_Type <- "Overall effect (K = 2638)"

# Merge the new database and the old database
combined_data <- rbind(rd, tra_new_data, ter_new_data)

# Plot the chart
ggplot() +
  # Jitter points for individual data points
  geom_jitter(
    data = combined_data,
    aes(y = Competitor_Type, x = yi),
    alpha = 0.1, 
    color = "lightgray", 
    width = 0.4, 
    height = 0.1
  ) +
  # Error bars and points from the main dataset
  geom_errorbar(
    data = data, 
    aes(y = study, x = effect, xmin = ci_lower, xmax = ci_upper, color = Category), 
    width = 0
  ) +
  geom_point(
    data = data, 
    aes(y = study, x = effect, color = Category), 
    size = 2
  ) +
  scale_y_discrete(
    breaks = levels(data$study), 
    labels = levels(data$study), 
    limits = levels(data$study)
  ) +
  geom_vline(xintercept = 0, linetype = "dashed", color = "darkgray") +
  theme( 
  panel.background = element_rect(color = "gray", fill = "white", size = 0.6),        
  plot.background = element_blank(),         
  panel.grid.major = element_blank(),        
  panel.grid.minor = element_blank(),
  plot.title = element_text(hjust = 0.5, size = rel(0.8), vjust = 0),
  legend.position = "none") +
  labs(y = " ", x = "Effect Size (lnCVR)") +
  theme(axis.text.y = element_text(angle = 0, hjust = 1)) + 
  scale_color_manual(values = c(
    "black", "#6A9FB5", "#A3BFD9", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "brown", "antiquewhite3", "black", "#6A9FB5", 
    "#A3BFD9", "brown", "antiquewhite3"
  ))

5. Publication bias

5.1 Identifying publication bias

5.1.1 Funnel plots

#funnel(rmod.mix0, level=c(90, 95, 99), shade=c("white", "gray55", "gray75"), yaxis="seinv", refline = 0, legend = TRUE); title(main = "Effect Size for Mean", col.main = "black", font.main = 1)

#funnel(rmod.mix0.v, level=c(90, 95, 99), shade=c("white", "gray55", "gray75"), yaxis="seinv", refline = 0, legend = TRUE); title(main = "Effect Size for Variation", col.main = "black", font.main = 1)

Alt Text Alt Text

Funnel plots provide an intuitive visualization that helps us quickly understand the distribution of study results and identify small-study effects. However, funnel plots themselves do not offer specific statistical significance, so caution is needed when interpreting results. It is typically necessary to complement them with other methods and tests for a more comprehensive assessment of publication bias. Next, we will conduct testing using an extending Egger’s regression method for multilevel meta-regression (Nakagawa et al. 2022).

5.2 Testing for Publication Bias with Multilevel Meta-Regression

5.2.1 Publication Bias for mean

# Define the multivariate meta-regression model to examine publication bias
publication.bias.model.rr.srin <- rma.mv(yi, vi, 
                   mods= ~ 1 + Pub_Year + Study_Test_Type, 
                   random = list(~1 |Study/id),
                   method = "ML", 
                   test = "t", 
                   data = ddd.new)

summary(publication.bias.model.rr.srin)
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
##     logLik    Deviance         AIC         BIC        AICc   
## -3101.8030   6203.6060   6215.6060   6253.0293   6215.6283   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.1101  0.3319    346     no     Study 
## sigma^2.2  0.1801  0.4244   3779     no  Study/id 
## 
## Test of Moderators (coefficients 2:4):
## F(df1 = 3, df2 = 3775) = 1.1210, p-val = 0.3391
## 
## Model Results:
## 
##                                       estimate      se     tval    df    pval 
## intrcpt                                -8.5651  6.4402  -1.3300  3775  0.1836 
## Pub_Year                                0.0042  0.0032   1.3068  3775  0.1914 
## Study_Test_Typeoutdoor experimental    -0.0544  0.0448  -1.2154  3775  0.2243 
## Study_Test_Typeoutdoor observational    0.0535  0.1155   0.4634  3775  0.6431 
##                                          ci.lb   ci.ub    
## intrcpt                               -21.1916  4.0614    
## Pub_Year                               -0.0021  0.0104    
## Study_Test_Typeoutdoor experimental    -0.1421  0.0334    
## Study_Test_Typeoutdoor observational   -0.1729  0.2799    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# No publication bias was detected based on the meta-regression with publication year and study test type as moderators

5.2.2 Publication Bias for variation

# Define the multivariate meta-regression model to examine publication bias
publication.bias.model.cvr.srin <- rma.mv(yi, vi, 
                   mods= ~ 1 + Pub_Year + Study_Test_Type, 
                   random = list(~1 |Study/id),
                   method = "ML", 
                   test = "t", 
                   data = rd)

summary(publication.bias.model.cvr.srin)
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
##     logLik    Deviance         AIC         BIC        AICc   
## -4134.6782   6157.4774   8281.3564   8318.7797   8281.3787   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0628  0.2507    346     no     Study 
## sigma^2.2  0.1835  0.4283   3779     no  Study/id 
## 
## Test for Residual Heterogeneity:
## QE(df = 3775) = 8323.1251, p-val < .0001
## 
## Test of Moderators (coefficients 2:4):
## F(df1 = 3, df2 = 3775) = 0.1502, p-val = 0.9296
## 
## Model Results:
## 
##                                       estimate      se     tval    df    pval 
## intrcpt                                 3.3712  6.3278   0.5328  3775  0.5942 
## Pub_Year                               -0.0016  0.0031  -0.5141  3775  0.6072 
## Study_Test_Typeoutdoor experimental     0.0206  0.0427   0.4815  3775  0.6302 
## Study_Test_Typeoutdoor observational    0.0250  0.1102   0.2272  3775  0.8203 
##                                         ci.lb    ci.ub    
## intrcpt                               -9.0349  15.7774    
## Pub_Year                              -0.0078   0.0045    
## Study_Test_Typeoutdoor experimental   -0.0632   0.1043    
## Study_Test_Typeoutdoor observational  -0.1910   0.2411    
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# No publication bias was detected based on the meta-regression with publication year and study test type as moderators

5.2.3 Figures for publication bias

# Time-lag for mean
ggplot(ddd.new, aes(x = Pub_Year, y = yi)) + 
  geom_point(
    shape = 21, 
    fill = rgb(0, 0, 0, 0.1), 
    color = rgb(0, 0, 0, 0.2)
  ) +
  geom_smooth(
    method = "lm", 
    se = TRUE, 
    fill = rgb(104/255, 34/255, 139/255, 0.5),
    color = "darkorchid4",
    linewidth = 1.2
  ) +
  geom_hline(yintercept = 0, linetype = "dashed", linewidth = 1) +
  labs(
    x = "Publication year", 
    y = "Effect size", 
    size = "N ="
  ) +
  scale_size_area(max_size = 10) +
  scale_x_continuous(
    breaks = seq(min(ddd.new$Pub_Year), max(ddd.new$Pub_Year), by = 2),
    expand = expansion(mult = c(0.02, 0.02))
  ) +
  scale_y_continuous(
    breaks = round(seq(-3, 2, 0.5), 1),
    expand = expansion(mult = c(0.02, 0.02))
  ) +
  theme_bw() +
  theme(
    text = element_text(size = 15),
    legend.position = "bottom",
    legend.direction = "horizontal",
    panel.grid = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
    axis.text.y = element_text(size = 10),
    axis.title = element_text(size = 14),
    plot.margin = margin(10, 10, 10, 10)
  )
## `geom_smooth()` using formula = 'y ~ x'

# This visualization shows no time lag in the mean

# Time-lag for variation
ggplot(rd, aes(x = Pub_Year, y = yi)) + 
  geom_point(
    shape = 21, 
    fill = rgb(0, 0, 0, 0.1), 
    color = rgb(0, 0, 0, 0.2)
  ) +
  geom_smooth(
    method = "lm",
    se = TRUE,
    fill = rgb(104/255, 34/255, 139/255, 0.5),
    color = "darkorchid4",
    linewidth = 1.2
  ) +
  geom_hline(yintercept = 0, linetype = "dashed", linewidth = 1) +
  labs(
    x = "Publication year",
    y = "Effect size",
    size = "N ="
  ) +
  scale_size_area(max_size = 10) +
  scale_x_continuous(
    breaks = seq(min(rd$Pub_Year), max(rd$Pub_Year), by = 2),
    expand = expansion(mult = c(0.02, 0.02))
  ) +
  scale_y_continuous(
    breaks = round(seq(-3, 2, 0.5), 1),
    expand = expansion(mult = c(0.02, 0.02))
  ) +
  theme_bw() +
  theme(
    text = element_text(size = 15),
    legend.position = "bottom",
    legend.direction = "horizontal",
    panel.grid = element_blank(),
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10),
    axis.text.y = element_text(size = 10),
    axis.title = element_text(size = 14),
    plot.margin = margin(10, 10, 10, 10)
  )
## `geom_smooth()` using formula = 'y ~ x'

# This visualization shows no time lag in the variation

6. Sensitivity analysis

6.1 Remove influential outliers

6.1.1 Overall mean

# Calculate hat values and the average hat value following Habeck and Schultz (2015)
hat_values <- hatvalues(rmod.mix0)
average_hat_value <- mean(hat_values)

# Extract residuals
residuals <- residuals(rmod.mix0)

# Identify indices of influential outliers
influential_outliers1 <- which(hat_values > 2 * average_hat_value & abs(residuals) > 3.0)

# Trait variation
hat_values <- hatvalues(rmod.mix0.v)
average_hat_value <- mean(hat_values)

# Extract residuals
residuals <- residuals(rmod.mix0.v)

# Identify indices of influential outliers
influential_outliers2 <- which(hat_values > 2 * average_hat_value & abs(residuals) > 3.0)

# Remove influential outliers from the data
data_clean1 <- ddd.new[-influential_outliers1, ]; data_clean1 <- data_clean1[-influential_outliers2, ]

data_clean2 <- rd[-influential_outliers1, ]; data_clean2 <- data_clean2[-influential_outliers2, ]

# Run the rma.mv model using the cleaned data
rmod.mix0.ms <- rma.mv(yi ~ 1, V = vi, random = list(~1 |Study/id), method = "ML", data = data_clean1)
rmod.mix0.ms
## 
## Multivariate Meta-Analysis Model (k = 3772; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.1116  0.3340    346     no     Study 
## sigma^2.2  0.1795  0.4237   3772     no  Study/id 
## 
## Model Results:
## 
## estimate      se     zval    pval    ci.lb    ci.ub      
##  -0.1646  0.0214  -7.6794  <.0001  -0.2066  -0.1226  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

6.1.2 Overall variation

# Run the rma.mv model using the cleaned data
rmod.mix0.vs <- rma.mv(yi ~ 1, V = vi, random = list(~1 |Study/id), method = "ML", data = data_clean2)
rmod.mix0.vs
## 
## Multivariate Meta-Analysis Model (k = 3772; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0632  0.2514    346     no     Study 
## sigma^2.2  0.1839  0.4288   3772     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 3771) = 8362.7891, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.1253  0.0202  6.1995  <.0001  0.0857  0.1650  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

6.2 Replace extreme vi values

6.2.1 Overall mean

# There are extreme values for vi in the models, and this analysis examines whether these values have a substantial impact on the model estimates.
ddn <- ddd.new

# Set the 2.5% and 97.5% quantiles
quantile(ddn$vi, probs = c(0.025, 0.975), na.rm = TRUE)
##         2.5%        97.5% 
## 0.0001313575 1.1218487040
lower_bound <- 0.0001313575
upper_bound <- 1.1218487040

# Replace extreme values in vi with the corresponding quantiles
ddn$vi[ddn$vi < lower_bound] <- lower_bound
ddn$vi[ddn$vi > upper_bound] <- upper_bound

# Model after replacing extreme vi values
m.ddnew <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = ddn, tdist = TRUE, method = "ML")
m.ddnew
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.1129  0.3361    346     no     Study 
## sigma^2.2  0.1806  0.4250   3779     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 3778) = 189549.4263, p-val < .0001
## 
## Model Results:
## 
## estimate      se     tval    df    pval    ci.lb    ci.ub      
##  -0.1654  0.0215  -7.6943  3778  <.0001  -0.2076  -0.1233  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

6.2.2 Overall variation

dd <- rd

# Set the 2.5% and 97.5% quantiles
quantile(rd$vi, probs = c(0.025, 0.975), na.rm = TRUE)
##       2.5%      97.5% 
## 0.04408487 1.87853024
lower_bound <- 0.04408487
upper_bound <- 1.87853024

# Replace extreme values in vi with the corresponding quantiles
dd$vi[dd$vi < lower_bound] <- lower_bound
dd$vi[dd$vi > upper_bound] <- upper_bound

# Model after replacing extreme vi values
m.rdnew <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = dd, tdist = TRUE, method = "ML")
m.rdnew
## 
## Multivariate Meta-Analysis Model (k = 3779; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0670  0.2589    346     no     Study 
## sigma^2.2  0.1834  0.4282   3779     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 3778) = 8095.0083, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval    df    pval   ci.lb   ci.ub      
##   0.1272  0.0205  6.2001  3778  <.0001  0.0870  0.1675  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

6.3 Distinguishing between Ecosystems

6.3.1 Overall mean

# Exclude data for Ecosystem "aquatic"
m.excl.ea <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = ddd.new[ddd.new$Ecosystem != "aquatic",], tdist = TRUE, method = "ML")
m.excl.ea
## 
## Multivariate Meta-Analysis Model (k = 3289; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.1282  0.3581    278     no     Study 
## sigma^2.2  0.1882  0.4338   3289     no  Study/id 
## 
## Model Results:
## 
## estimate      se     tval    df    pval    ci.lb    ci.ub      
##  -0.1677  0.0252  -6.6564  3288  <.0001  -0.2170  -0.1183  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Exclude data for Ecosystem "terrestrial"
m.excl.et <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = ddd.new[ddd.new$Ecosystem != "terrestrial",], tdist = TRUE, method = "ML")
m.excl.et
## 
## Multivariate Meta-Analysis Model (k = 539; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0480  0.2192     81     no     Study 
## sigma^2.2  0.1130  0.3361    539     no  Study/id 
## 
## Model Results:
## 
## estimate      se     tval   df    pval    ci.lb    ci.ub      
##  -0.1599  0.0326  -4.9065  538  <.0001  -0.2240  -0.0959  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Exclude data for Ecosystem "model organism"
m.excl.eo <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = ddd.new[ddd.new$Ecosystem != "model organism",], tdist = TRUE, method = "ML")
m.excl.eo
## 
## Multivariate Meta-Analysis Model (k = 3730; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.1145  0.3384    336     no     Study 
## sigma^2.2  0.1821  0.4267   3730     no  Study/id 
## 
## Model Results:
## 
## estimate      se     tval    df    pval    ci.lb    ci.ub      
##  -0.1641  0.0219  -7.4790  3729  <.0001  -0.2071  -0.1211  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

6.3.2 Overall variation

# Exclude data for Ecosystem "aquatic"
m.excl.eav <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = rd[rd$Ecosystem != "aquatic",], tdist = TRUE, method = "ML")
m.excl.eav
## 
## Multivariate Meta-Analysis Model (k = 3289; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0566  0.2380    278     no     Study 
## sigma^2.2  0.1596  0.3994   3289     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 3288) = 6699.3674, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval    df    pval   ci.lb   ci.ub      
##   0.1277  0.0213  6.0006  3288  <.0001  0.0860  0.1694  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Exclude data for Ecosystem "terrestrial"
m.excl.etv <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = rd[rd$Ecosystem != "terrestrial",], tdist = TRUE, method = "ML")
m.excl.etv
## 
## Multivariate Meta-Analysis Model (k = 539; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0877  0.2961     81     no     Study 
## sigma^2.2  0.3263  0.5712    539     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 538) = 1763.4305, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval   df    pval   ci.lb   ci.ub     
##   0.1454  0.0529  2.7473  538  0.0062  0.0414  0.2494  ** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Exclude data for Ecosystem "model organism"
m.excl.eov <- rma.mv(yi, vi, random = ~ 1 | Study/id, data = rd[rd$Ecosystem != "model organism",], tdist = TRUE, method = "ML")
m.excl.eov
## 
## Multivariate Meta-Analysis Model (k = 3730; method: ML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed    factor 
## sigma^2.1  0.0615  0.2481    336     no     Study 
## sigma^2.2  0.1838  0.4288   3730     no  Study/id 
## 
## Test for Heterogeneity:
## Q(df = 3729) = 8260.3945, p-val < .0001
## 
## Model Results:
## 
## estimate      se    tval    df    pval   ci.lb   ci.ub      
##   0.1181  0.0203  5.8254  3729  <.0001  0.0784  0.1579  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
These sensitivity studies generated results that are largely similar with those reported in the main article.

References


Egger, M., Smith, G. D., Schneider, M., & Minder, C. (1997). Bias in meta-analysis detected by a simple, graphical test. BMJ, 315, 629.

Habeck, C. W., & Schultz, A. K. (2015). Community-level impacts of white-tailed deer on understorey plants in North American forests: a meta-analysis. AoB plants, 7, plv119.

Hadfield, J. D. (2010). MCMC Methods for Multi-Response Generalized Linear Mixed Models: The MCMCglmm R Package. Journal of Statistical Software, 33, 1-22.

Jennions, M. D., & Møller, A. P. (2002). Relationships fade with time: a meta-analysis of temporal trends in publication in ecology and evolution. Proceedings of the Royal Society of London B, 269, 43-48.

Lajeunesse, M. J. (2013). Recovering Missing or Partial Data from Studies: A survey of conversions and imputations for meta-analysis. In J. Koricheva, J. Gurevitch, & K. Mengersen (Eds.), The Handbook of Meta-Analysis in Ecology and Evolution.

Lüpold, S., de Boer, R. A., Evans, J. P., Tomkins, J. L., & Fitzpatrick, J. L. (2020). How sperm competition shapes the evolution of testes and sperm: a meta-analysis. Philosophical Transactions of the Royal Society B, 375(1813), 20200064.

Nakagawa, S., & Santos, E. S. A. (2012). Methodological issues and advances in biological meta-analysis. Evolutionary Ecology, 26, 1253-1274.

Nakagawa, S., Lagisz, M., Jennions, M. D., Koricheva, J., Noble, D. W., Parker, T. H., … & O’Dea, R. E. (2022). Methods for testing publication bias in ecological and evolutionary meta‐analyses. Methods in Ecology and Evolution, 13(1), 4-21.